package cz.pecinovsky.english.pojj.adv_demo.cesta_školou.hra;



/*******************************************************************************
 * Testovací třída MistnostTest slouží ke komplexnímu otestování
 * třídy Mistnost.
 *
 * @author    Jarmila Pavlíčková
 * @created    říjen 2008 (poslední změny)
 */
public class MistnostTest extends junit.framework.TestCase
{
	private Mistnost mistnost1;
	private Mistnost mistnost2;


//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Vytvoří test se zadaným názvem.
     *
     * @param název  Název konstruovaného testu
     */
    public MistnostTest( String název )
    {
        super( název );
    }



//== PŘÍPRAVA A ÚKLID PŘÍPRAVDKU ===============================================

    /***************************************************************************
     * Vytvoření přípravku (fixture), tj. sady objektů, s nimiž budou všechny
     * testy pracovat a která se proto vytvoří před spuštěním každého testu.
     */
    @Override
    protected void setUp()
    {
        mistnost1 = new Mistnost("hala",
                        "vstupni hala budovy VSE na Jiznim meste", 0, 0);
        mistnost2 = new Mistnost("bufet",
                        "bufet, kam si muzete zajit na svacinku", 0, 0);
        mistnost1.setVychod(mistnost2);
        mistnost2.setVychod(mistnost1);
    }


    /***************************************************************************
     * Úklid po testu - tato metoda se spustí po vykonání každého testu.
     */
    @Override
    protected void tearDown()
    {
    }



//== VLASTNÍ TESTY =============================================================

    /**
     * Testuje, zda jsou správně nastaveny průchody mezi místnostmi.
     */
    public  void testLzeProjit()
    {
            assertEquals(mistnost2, mistnost1.sousedniMistnost("bufet"));
            assertEquals(null, mistnost2.sousedniMistnost("pokoj"));
    }
    /**
     * Testuje, zda je správně vrácen popis místnosti (včetně východů).
     */
    public void testPopisuMistnosti()
    {
            assertEquals("Jsi v mistnosti/prostoru vstupni hala budovy VSE "
                + "na Jiznim meste.\nvychody: bufet", mistnost1.dlouhyPopis());
    }
}


